package com.atguigu.bigdata.scala.chapter07

object Scala10_Collection_Method_8 {

    def main(args: Array[String]): Unit = {

        // TODO 集合 - 功能方法

        val list = List(1,7,17,18,20,14)

        // 奇数求和，偶数求和
        // sum
        // 分组
        // 【1,7,17,18,20,14】
        // 1 => 【1，7，17】 => 25
        // 0 => 【18，20，14】 => 52
        // 事先先规定分组的逻辑，然后通过分组规则将集合中的每一条数据进行判断
        // 数据 => 分组的key

//        def groupFunction(num:Int): Int = {
//            num % 2
//        }
        // 1 => 1
        // 7 => 1
        // 17 => 1
        // 18 => 0
        // 20 => 0
        // 14 => 0

        // groupBy方法会返回一个Map集合
        // 存储数据的key表示分组标识（Key）,Value就是相同分组标识数据的集合
        //println(list.groupBy(groupFunction))
        //println(list.groupBy(_%2))

        val list1 = List(
            "Hello", "Hadoop", "Spark", "Scala", "Hive"
        )

        // H => (Hello, Hadoop, Hive), S => (Spark, Scala)
        // Hello => H
        // Hadoop => H
        // Hive => H
        // Spark => S
        // Scala => S
        println(list1.groupBy(_.substring(0, 1)))


    }
}
